1
고급 제어 흐름 익히기
AI019Lesson 6
00:00

case 식은 엘릭서의 제어 흐름의 핵심입니다. 명령형 스위치 문과 달리, case 함수형 식으로, 일치하는 브랜치의 결과를 반환하며, 개발자가 맵과 튜플 같은 복잡한 데이터 유형을 즉시 분해하고 완전한 논리를 강제할 수 있게 해줍니다.

1. 패턴 매칭 및 바인딩

case 식은 값에 대해 일련의 패턴과 비교할 수 있게 해줍니다. 해당 식은 일치하는 첫 번째 패턴 에 연결된 코드를 실행하고 그 코드의 값을 반환합니다. 매칭 내에서 변수를 바인딩하여 브랜치 로직에서 즉시 사용할 수 있습니다.

case dave do
%{state: some_state} = person ->
IO.puts "#{person.name}는 #{some_state}에 산다"
end

2. 시각적 논리 흐름

패턴 {:ok, val}패턴 {:error, _}기본값 _

3. 가드 절 및 완전성

가드 절을 사용하면 when 키워드를 사용하여 구조적 매칭에 조건 논리(예: is_number(age) and age >= 21)를 추가할 수 있습니다. 엘릭서는 모든 가능한 입력에 대해 매칭이 필요하며, 패턴이 일치하지 않으면 CaseClauseError 오류가 발생합니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>